<?php

namespace TemplateMethod;
/** 模板方法抽象类 */
abstract class AbstractClass
{
    /** 定义抽象行为，放到子类去实现 */
    public abstract function primitiveOperationA();
    public abstract function primitiveOperationB();

    /**
     * 模板方法，给出逻辑骨架，逻辑的组成是一些相应的抽象操作，推迟到子类完成
     * @return void
     */
    public function TemplateMethod()
    {
        $this->primitiveOperationA();
        $this->primitiveOperationB();
        echo "模板方法" . PHP_EOL;
    }
}